<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>生命周期</title>
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<!-- 准备好一个容器-->
		<div id="root" >
			<!-- 放置组件 组件标签-->
            <school></school>
            <hr>
            <student></student>
		</div>
	</body>
	
	<script type="text/javascript">
			Vue.config.productionTip=false;

            const hello = Vue.extend({
                data(){
                    return {name:'tom'}
                }
            })
            // 全局注册
            Vue.component('hello',hello)

            // 创建school 组件
            const school = Vue.extend({
               // el:"#root", 组件定义一定不要写el配置项，组件的意义需要配合vm使用
               template:`
               <div>
                <h2>
                学校名称:{{schoolName}}
                </h2>
                <h2>
                    学校地址:{{address}}
                </h2>
                </div>
               `, 
               data(){
                    /*
                    之前说过，el与data有两种形式
                    一个是对象的形式 data:{}
                    第二个是函数形式，如果你要定义组件的话，一定要用函数的形式
                    这是因为，当你定义的组件的时候，其它页面引用时你的组件时候
                    数据应该是彼此独立的，通过调用一个data函数返回了一个全新的
                    数据对象，对他进行修改不会影响其他页面的数据内容
                    但是你使用同一个data对象的话，由于对象存在引用关系
                    所以当你在某一个页面修改的时候，其它的引用的数据就会受到
                    影响。
                    
                    */
                    return {
                        schoolName:'三三',
                        address:'北京北京',
                    }
                }
            })

            const student = Vue.extend({
                template:`
               <div>
                <h2>
                学校姓名:{{studentName}}
                </h2>
                <h2>
                    学校地址:{{age}}
                </h2>
                </div>
               `, 
               data(){
                    return {
                        studentName:'张三',
                        age:18
                    }
                }
            })


			new Vue({
                el:"#root",
                // 注册组件（局部注册）
                components:{
                    school:school,// key value形式
                    student
                }
            })
	</script>
</html>
